const _ = require('underscore');
const scheduleAction = require('./ScheduleAction');
const schedule = require('node-schedule');
const conn = require('../../server/libs/DB/Conn');

/*
* 任务初始化功能
* 当任务发生变更时或系统重新启动时将需要执行的任务进行初始化 首先从schedule.scheduledJobs清除所有有效任务并从数据库中获取需要执行的任务并执行任务启动
* */
async function action() {
    let taskList = await conn('select * from task WHERE enable = 1 ;');//从数据库中查询任务列表
    _.forEach(schedule.scheduledJobs, function (job, key) {//从schedule中获取当前有效可执行的任务
        job.cancel();//清空当前所有有效任务
    });
    for (let task of taskList) {
        let taskId = task.task_id;
        scheduleAction(task);//重新生成任务
    }
}

module.exports = action;